iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 3
13
Modern Web

金魚都能懂的CSS必學屬性系列 第 3

Font-size - 金魚都能懂的CSS必學屬性

  • 分享至 

  • xImage
  •  

Font-size,這麼簡單的一個CSS屬性,有必要特別開一篇文章來談嗎?這根本就是騙稿費騙篇數的啊!說實在話,font-size這屬性還真的是不困難,但卻也是每個網頁都會用到的一項CSS重要屬性,對於font-size這屬性在實務應用來說,重要的不單單是他怎麼設定的問題,更重要的則會是設計面及體驗面上面的考量,所以接下來就跟著Amos來了解看看,一個看似不起眼的font-siz屬性,有些什麼樣需要特別注意的事項吧!

Font-size 的規則

font-size基本上僅需指定一個值,其撰寫方式像是這樣

font-size: 20px;

好了!講完了,今天的金魚都能懂的CSS必學屬性就這樣...(被打!)

說到font-size,就必須要知道該屬性設定值的問題,font-size可設定的值Amos會將其區分成三大類:

  • 關鍵字
  • 絕對單位
  • 相對單位

基本上對於許多的CSS介紹來說,比較不會這樣區分類型,而是會把單位抽出來另外介紹,但因為很多時候要另外去看這些單位是挺麻煩的,乾脆直接把值跟屬性合併起來一起看,我想這是最容易理解的一種方式了。

關鍵字

font-size的值中,關鍵字部分有以下幾種

  • xx-small
  • x-small
  • small
  • medium
  • large
  • x-large
  • xx-large
  • smaller
  • larger

而關鍵字的字級大小,也屬於絕對尺寸的一種,對應到的就是px的尺寸,不過說實在的,一般來說Amos其實不太會使用到關鍵字來設定我的網頁字級,所以如果各位哪天有看到使用關鍵字來設定字級大小的話,就當作參考看看囉。

絕對單位

font-size中的絕對單位,其實應該要稱為是「CSS中的絕對單位」,因為每個屬性使用到這個單位的話,都是相同的原理。絕對單位像是px、pt、cm...等,都屬於絕對單位,像是列印時我們可能會設定pt或是cm,而在CSS font-size屬性中,可以接受的絕對單位有

  • px (1pixel = 1/96in)
  • pt (1point = 1/72)
  • pc (1picas = 12pt)
  • cm
  • mm
  • in (1inch = 96px = 2.54cm)

這些絕對單位,基本上Amos比較常使用到的大概就是px (像素pixel),因為對應到畫面上的像素解析度,這是最好控制的一個 單位了,但倘若是製作RWD網頁的話,這樣的單位反倒需要特別注意,可能因為寫死尺寸導致畫面出現跑版或是破版情況。舉個例子,當你把主標題寫死大小,又沒做好斷點設定的話,導致到手機版本字體過大,就撐開了整個版面。

相對單位

font-size的相對單位應該是目前比較多人使用的單位,但需要特別注意到他們之間的相依性,例如相對單位,都是依據某個物件的尺寸設定來對應的,先來了解一下相對單位有哪些

  • % (百分比)
  • em
  • ex (字體的英文小寫x高度)
  • rem (root的字級)
  • vw (view port width 相對於視窗的寬)
  • vh (view port height 相對於視窗的高)
  • vmin (view port min size 相對於視窗的短邊)
  • vmax (view port max size 相對於視窗的長邊)

相對單位Amos目前比較常用到的有%、em、rem、vw、vh,其中%與em都與父層的字級尺寸有關,例如50%就等於是父層字級的一半大小,而0.5em也與50%是一樣的。而vw、vh、vmin、vmax則是多用於RWD網頁的需求居多。

font-size設定注意事項

在電腦版本的chrome瀏覽器有一個字級大小的限制,就是其最小尺寸不得小於9px,一旦你的文字設定了小於9px的字級,那麼該字級就會固定在9px。另外相對尺寸的部分,倘若你的父層字級尺寸為0,那麼子層不管設定多大的相對尺寸單位,都會是0,你就會看不到文字啦,這部分請各位千萬要小心注意,不然可能會抓錯抓到暈頭還不知道啥原因呢!

Font-size這麼多種設定值,能不能讓我一次比對

CSS font-size的值,不管是關鍵字還是相對尺寸或絕對尺寸,講真的看完還是覺得暈阿,而且每個不同單位之間都要換算,超麻煩的,能不能讓我一次看完啦!哼!我就知道,你就懶!其實Amos也是很懶,所以我做好比對的清單了,「List of CSS font-size property Values」是Amos把關鍵字對上其他常見單位的一份清單表格,有興趣的朋友都可以在有需要的時候去查看看。


「金魚都能懂的CSS選取器」已集結成書,並於書中添加一些新篇章及細節補充,有興趣的朋友可至天瓏書局選購,感謝各位支持
購書連結 https://www.tenlong.com.tw/products/9789864344994?list_name=b-r30-zh_tw
https://ithelp.ithome.com.tw/upload/images/20200917/20112550bxAFk2frMp.jpg
讓我們好好善用CSS選取器吧


金魚都能懂的教學系列

鐵人雙主題挑戰中,歡迎訂閱一波

金魚都能懂的Bootstrap5網頁框架開發

立刻訂閱 CSS可樂的網站/頻道享受精彩文章

Line搜尋「@CSScoke」加入CSS可樂公開帳號,可以收到 Amos 第一手資訊喔
CSS 可樂部落格
CSS coke 的 Youtube 直播頻道
快按此訂閱 CSS coke 的頻道接收最新教學
/images/emoticon/emoticon12.gif


上一篇
Font-family - 金魚都能懂的CSS必學屬性
下一篇
Font-weight - 金魚都能懂的CSS必學屬性
系列文
金魚都能懂的CSS必學屬性31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

0
raymerci
iT邦新手 5 級 ‧ 2022-06-19 16:42:49

請問Amos兩個問題:

Q1.「絕對單位」的意思是否是這樣?

譬如我設定 96px ,當某台電腦或手機的螢幕,畫面縮放比例是「100%」或「實際大小」時,我們用「實際的尺」去測量「一個字元」時,理應得到「96px = 1inch = 2.54cm」的結果?

原本我以為是這樣,但實測結果讓我茫了,以下的截圖我直接設定 font-size 是 2cm,然而得到的結果是:
1. 中文字元 < 2cm
2. 數字字元 < 2cm (而且「1」的寬度是更小的)
https://ithelp.ithome.com.tw/upload/images/20220619/201489224tXR1JgWBC.png

完全不符合我原先對於「絕對單位」的想像,這讓我更加困惑我們在設定的「font-size」和「px, cm, ... 」究竟是什麼意思?

Q2. 為什麼瀏覽器要預設「最小字級 9px」?這樣不是會讓網頁的呈現結果變得更加限制,這背後有什麼特殊意義嗎?

此外,我用DevTools去查看與測試,它現在顯示是「12px」而非「9px」了(我設定 font-size = 1px )。
附註:我的電腦是Mac,使用的程式介面是CodePen,並且測試了Chrome和Edge,都是顯示12px,但附圖的是Edge。
https://ithelp.ithome.com.tw/upload/images/20220619/20148922OPUlbGfDME.png

我要留言

立即登入留言